package frpc.manager.operation;

import frpc.manager.hash.RedisHashManagerImpl;
import frpc.manager.list.RedisListManagerImpl;
import frpc.manager.lock.IRedisLockManager;
import frpc.manager.lock.RedisLockManagerImpl;
import frpc.manager.set.RedisSetManagerImpl;
import frpc.manager.string.RedisSerializableManagerImpl;
import org.springframework.context.ApplicationContext;

/**
 * 类描述:  Redis业务处理通用逻辑抽象
 *
 * @author 王雷
 * @version 1.0.0
 * @date 2020/11/26 0026 下午 5:26
 */
public abstract class AbstractRedisManager implements IRedisManage {

    /**
     * 功能描述：Redis业务处理接口实现
     *
     * @author : 王雷
     * @date : 2020/11/26 0026 下午 5:29
     */
    protected AbstractRedisManager() {
    }

    /**
     * 类描述: 内部Redis锁对象业务处理逻辑实现
     *
     * @author : 王雷
     * @date : 2020/11/26 0026 下午 5:51
     */
    protected static class InteriorRedisLockManagerImpl extends RedisLockManagerImpl {

        /**
         * 功能描述：Redis锁对象业务处理逻辑实现
         *
         * @param iRedisManage Redis业务处理接口
         * @author : 王雷
         * @date : 2020/11/26 0026 下午 4:47
         */
        protected InteriorRedisLockManagerImpl(IRedisManage iRedisManage) {
            super(iRedisManage);
        }
    }

    /**
     * 类描述: 内部Redis——Hash对象业务处理逻辑实现
     *
     * @author : 王雷
     * @date : 2020/11/26 0026 下午 5:51
     */
    protected static class InteriorRedisHashManagerImpl extends RedisHashManagerImpl {

        /**
         * 功能描述：内部Redis——Hash对象业务处理逻辑实现
         *
         * @param iRedisLockManager Redis锁处对象
         * @author : 王雷
         * @date : 2020/11/26 0026 下午 4:47
         */
        protected InteriorRedisHashManagerImpl(IRedisLockManager iRedisLockManager) {
            super(iRedisLockManager);
        }
    }

    /**
     * 类描述: 内部Redis——List对象业务处理逻辑实现
     *
     * @author : 王雷
     * @date : 2020/11/26 0026 下午 5:51
     */
    protected static class InteriorRedisListManagerImpl extends RedisListManagerImpl {

        /**
         * 功能描述：内部Redis——List对象业务处理逻辑实现
         *
         * @param iRedisLockManager Redis锁处对象
         * @author : 王雷
         * @date : 2020/11/26 0026 下午 4:47
         */
        protected InteriorRedisListManagerImpl(IRedisLockManager iRedisLockManager) {
            super(iRedisLockManager);
        }
    }

    /**
     * 类描述: 内部Redis——Set对象业务处理逻辑实现
     *
     * @author : 王雷
     * @date : 2020/11/26 0026 下午 5:51
     */
    protected static class InteriorRedisSetManagerImpl extends RedisSetManagerImpl {

        /**
         * 功能描述：内部Redis——Set对象业务处理逻辑实现
         *
         * @param iRedisLockManager Redis锁处对象
         * @author : 王雷
         * @date : 2020/11/26 0026 下午 4:47
         */
        protected InteriorRedisSetManagerImpl(IRedisLockManager iRedisLockManager) {
            super(iRedisLockManager);
        }
    }

    /**
     * 类描述: 内部Redis——String对象业务处理逻辑实现
     *
     * @author : 王雷
     * @date : 2020/11/26 0026 下午 5:51
     */
    protected static class InteriorRedisSerializableManagerImpl extends RedisSerializableManagerImpl {

        /**
         * 功能描述：内部Redis——String对象业务处理逻辑实现
         *
         * @param iRedisLockManager Redis锁处对象
         * @author : 王雷
         * @date : 2020/11/26 0026 下午 4:47
         */
        protected InteriorRedisSerializableManagerImpl(IRedisLockManager iRedisLockManager) {
            super(iRedisLockManager);
        }
    }
}
